1
Paradigma Fungsional: Transformasi Lebih Penting dari Mutasi
AI019Lesson 2
00:00

Paradigma fungsional menggeser pola pikir pengembang dari "memperbarui kotak berstatus" menjadi menerapkan transformasi matematis ke nilai yang tidak dapat diubah. Di Elixir, data tidak pernah diubah; hanya dilahirkan kembali dalam bentuk baru.

1. Asumsi Matematis

Ketika Anda menulis $x = a + 1$, Anda tidak sedang mengalokasikan hasil ke variabel. Sebaliknya, Anda hanya secara sederhana mengklaim bahwa ekspresi $x$ dan $a + 1$ memiliki nilai yang sama. Ini mencerminkan logika aljabar di mana $x$ mewakili nilai tetap dalam konteks tertentu.

2. Imutabilitas sebagai Jaminan

Di Elixir, semua nilai bersifat tidak dapat diubah. Data tidak dapat diubah setelah dibuat. Ini menghilangkan "efek samping" di mana suatu fungsi bisa secara tak terduga mengubah variabel global atau objek yang dikirimkan, memastikan kode bersifat prediktif dan aman untuk threading.

SEBELUM (Masukan)"elixir"String.capitalizeSESUDAH (Hasil)"Elixir"Data asli tetap tidak berubah

3. Transformasi vs. Mutasi

Kita tidak pernah mengubah data secara langsung. Elixir tidak memiliki operasi penugasan; sebaliknya, ia berusaha untuk menyesuaikan nilai dengan pola. Untuk "mengubah" nilai, kita melewati data asli melalui fungsi untuk menghasilkan versi yang benar-benar baru.

iex> name = "elixir"
"elixir"
iex> cap_name = String.capitalize name
"Elixir"
iex> name
"elixir" (Masih utuh!)
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>